"""
@name : 12-14 BattleGame
@author : hj
@projectname: CJH
"""

import random


# 回合制对战游戏
# ===创建角色类：初始化 名字、性别、血量、装备等属性（血量默认100）
# ===创建房间类
# • 房间上限2人
#    ===初始化时只能传递俩个角色对象作为参数
# • 房间内的人可互打
#    ===定义互打的方法（a打b，b就掉血 随机互打）
#    ===判断是否有防弹衣，有，被打掉血10，没有，被打掉血5
#    ===判断血量是否充足，不充足直接淘汰，game over

# 创建角色类
class Role:

    # 初始化角色
    def __init__(self, name, sex, equipment):
        self.name = name
        self.sex = sex
        self.equipment = equipment
        self.blood = 100


class Room:
    # 初始化房间
    def __init__(self, name):
        self.name = name

    def join(self, role):
        pass


def create_role(name, sex, equipment):
    role = Role(name, sex, equipment)
    return role


def create_room(name):
    room = Room(name)
    return room


def start_game(role1, role2, room):
    print(f'{role1.name}和{role2.name}正在{room}房间对战')
    while True:
        r = random.choice([role1, role2])
        if r.blood >= 5:
            if r.equipment == "Y":
                r.blood -= 5
                print(f"{r.name}被打了，掉血5滴，还剩{r.blood}")
            else:
                r.blood -= 10
                print(f"{r.name}被打了，掉血10滴，还剩{r.blood}")
            if r.blood < 5:
                print(f"游戏结束，{r.name}输了")
                break




def main():
    rooms = {}
    roles = {}
    print("回合制对战游戏".center(50, '*'))
    while True:
        print("1.创建角色\t2.创建房间\t3.开始游戏\t 4.退出")
        choice = input("请选择：")
        if choice == '1':
            # 定义属性
            role_name = input("请输入角色名：")
            sex = input("请输入角色性别（male/female）：")
            equipment = input("请问是否需要装备：Y/N")
            # 创建实例
            role = create_role(role_name, sex, equipment)
            # 实例放入角色列表中，后面调用
            roles[role_name] = role
            print(f"角色创建成功,目前的角色有：{list(roles.keys())}")

        elif choice == '2':
            # 定义属性
            room_name = input("请输入房间名：")
            # 创建实例
            room = create_room(room_name)
            # 实例放入房间列表中，后面调用
            rooms[room_name] = room
            print(f"房间创建成功,目前的房间有：{list(rooms.keys())}")
        elif choice == '3':
            if len(roles.keys()) < 2:
                print("必须要有俩个人才能开始游戏")
            elif len(rooms.keys()) < 1:
                print("目前没有房间可以使用")
            else:
                print(f'角色：{list(roles.keys())}\n房间：{list(rooms.keys())}')
                print("请选择一个房间和俩个角色开始游戏")
                role1 = input("角色1：")
                role2 = input("角色2：")
                room = input("房间：")
                if not roles.get(role1):
                    print(f"不存在{role1}用户")
                elif not roles.get(role2):
                    print(f"不存在{role2}用户")
                elif not rooms.get(room):
                    print(f"不存在{room}房间")
                else:
                    start_game(roles.get(role1), roles.get(role2), room)
        elif choice == '4':
            print("退出")
            break


main()
